home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998…eptember: Technology Seed / September 98 ADC Seed CD.toast / LaserWriter 8.6b5 Seed / LaserWriter 8.6b5 / PrintingLib / PrintingLib.rsrc / PS_-8184 < prev    next >
Encoding:
Text File  |  1998-08-12  |  2.5 KB  |  151 lines

  1. %%BeginFile: lw8_nup-2.1
  2. /nx Z
  3. /ny Z
  4. /pagew Z
  5. /pageh Z
  6. /angle Z
  7. /paperw Z
  8. /paperh Z
  9. /nups Z
  10. /pgx Z
  11. /pgy Z
  12. /papermarg 1 def
  13. /pagemarg 10 def
  14. /framewidth 1 def
  15. /numframes 2 def
  16. /stepdirection F def
  17. /stepxbeforey T def
  18. /startpage{
  19. gS
  20. 0 0 mT transform pagew pageh mT dtransform rC
  21. }bd
  22. /startNup{
  23. /ny xs
  24. /nx xs
  25. /pageh xs
  26. /pagew xs
  27. dup/angle xs
  28. rotate
  29. angle 180 mod 0 ne
  30. {
  31. /por por not store
  32. }if
  33. clippath/nups pathbbox
  34. 3 -1 roll sub
  35. papermarg sub
  36. ny div pagemarg sub
  37. pageh div exch
  38. 3 -1 roll sub
  39. papermarg sub nx div
  40. pagemarg sub pagew div
  41. 2 copy gt{exch}if pop store
  42. nups dup scale
  43. /paperw pagew pagemarg nups div add store
  44. /paperh pageh pagemarg nups div add store
  45. pathbbox mT aload pop
  46. pagemarg nups div dup
  47. 8 index 11 index sub
  48. paperh ny mul sub
  49. add 2 div exch
  50. 9 index 12 index sub paperw nx mul sub add 2 div
  51. 8 -2 roll add 0 gt{9}{neg 7}ifelse index add 4 -1 roll sub exch
  52. 5 -2 roll add 0 gt{5}{neg 3}ifelse index add 3 -1 roll sub :T pop pop pop pop
  53. /paperw paperw paperh mT idtransform abs/paperh xs abs store
  54. /pagew pagew pageh mT idtransform abs/pageh xs abs store
  55. mT 0 get abs mT 1 get abs lt{/nx ny/ny nx store store}if
  56. .48 framewidth div nups div
  57. 0 mT idtransform dup mul exch dup mul add sqrt
  58. lw
  59. /pgx 0 store/pgy 0 store
  60. np
  61. stepdirection
  62. {
  63. paperw nx 1 sub mul 0 mT dtransform :T
  64. /paperw paperw neg store
  65. }if
  66. startpage
  67. }bd
  68. /startnup{
  69. angle
  70. pagew
  71. pageh
  72. mT dtransform abs exch abs exch
  73. nx
  74. ny
  75. mT 0 get abs mT 1 get abs lt{exch}if
  76. startNup
  77. }bd
  78. /realshowpage/showpage ld
  79. /nupshowpage{
  80. gR
  81. mT concat
  82. numframes 0 gt
  83. {
  84. /setstrokeadjust where{pop currentstrokeadjust T setstrokeadjust}if
  85. pagemarg 2 div nups div dup mT idtransform
  86. abs neg exch abs neg exch paperw
  87. stepdirection{neg}if
  88. paperh
  89. currentlinewidth framewidth mul 4 mul
  90. adjRect
  91. numframes
  92. {
  93. 4 copy
  94. rS
  95. currentlinewidth framewidth
  96. mul 4 mul
  97. adjRect
  98. }repeat
  99. pop pop pop pop
  100. /setstrokeadjust where{pop setstrokeadjust}if
  101. }if
  102. stepxbeforey
  103. {
  104. /pgx pgx 1 add dup nx eq{
  105. pop 0 store
  106. paperw
  107. 1 nx sub mul
  108. /pgy pgy 1 add dup ny eq{
  109. gS realshowpage gR
  110. pop 0 store
  111. paperh 1 ny sub mul
  112. }{
  113. store paperh
  114. }ifelse
  115. }{
  116. store paperw
  117. 0
  118. }ifelse
  119. }{
  120. /pgy pgy 1 add dup ny eq{
  121. pop 0 store
  122. paperh
  123. 1 ny sub mul
  124. /pgx pgx 1 add dup nx eq{
  125. gS realshowpage gR
  126. pop 0 store
  127. paperw 1 nx sub mul
  128. }{
  129. store paperw
  130. }ifelse
  131. }{
  132. store paperh
  133. 0
  134. }ifelse
  135. exch
  136. }ifelse
  137. :T
  138. mT $m invertmatrix concat startpage
  139. }bd
  140. userdict/showpage/nupshowpage load put
  141. /finalpage{
  142. gR
  143. pgx 0 gt pgx nx lt and pgy 0 gt pgy ny lt and or{realshowpage}if
  144. level2{
  145. userdict/showpage undef
  146. }{
  147. userdict/showpage/realshowpage load put
  148. }ifelse
  149. }bd
  150. %%EndFile
  151.